Method for producing packages of printed materials by generating and executing a job set containing multiple linked sub-jobs

ABSTRACT

A method for producing packages of printed materials arranged in order based on multiple original digital documents. A user interface is provided to allow the user to specify the order of the original documents to be printed. A print server generates multiple sub-jobs which contain linking information that links them to each other in the specified order to form a job set. The job set can be submitted to a printer in one submission. A printer executes the linked sub-jobs sequentially based on the linking information contained in the sub-jobs to produce the multiple printed documents in the specified order.

BACKGROUND OF THE INVENTION

Field of the Invention

This invention relates to a method for managing printing of documents,and in particular, it relates to a method of printing multiple documentsin order to produce packages of printed materials.

Description of Related Art

In practice there are often situations when multiple separate originaldigital documents need to be printed and assembled in predeterminedorders to produce a package or set of printed materials. The requiredprint setting (including finishing settings) for the multiple originaldocuments may be different, for example, in terms of paper type andsize, single or double sided printing, finishing requirements such asfolding and stapling, etc. If multiple sets (i.e. copy count) isrequired, then multiple copies of the original documents need to beprinted and assembled into sets. For example, a manufacturer of aproduct may need to produce a set of documents, all of which are printedindividually and then assembled in a package and put in a single plasticsleeve to be delivered with the product. In a traditional printenvironment, such a print job would involve multiple different sourcefiles (e.g. Portable Document Format or PDF files), each of which wouldneed to be sent to a printer as a separate print job (or sub-job),printed, finished and then combined with the other sub-jobs and insertedinto a plastic sleeve for inclusion in the product packaging. It ispossible for the user to send multiple print jobs to a printersequentially to produce the set of printed materials, but such a methodcan be burdensome when multiple sets are produced.

SUMMARY

The present invention is directed to a method for producing packages ofprinted materials that substantially obviates one or more of theproblems due to limitations and disadvantages of the related art.

An object of the present invention is to provide a simplified method toproduce packages of printed materials containing an ordered set ofmultiple documents with diverse print settings.

Additional features and advantages of the invention will be set forth inthe descriptions that follow and in part will be apparent from thedescription, or may be learned by practice of the invention. Theobjectives and other advantages of the invention will be realized andattained by the structure particularly pointed out in the writtendescription and claims thereof as well as the appended drawings.

To achieve these and/or other objects, as embodied and broadlydescribed, the present invention provides a method implemented on aprint server which is connected to a printer, for producing a package ofprinted documents from multiple original digital documents, whichincludes: (a) receiving user inputs that specify a plurality of originaldigital documents to be printed in a specified order as a job set, theuser inputs further specifying print settings for each of the pluralityof original digital document; (b) receiving user inputs that specify aplurality of additional print settings for the job set; (c) generating aplurality of sub-job tickets, each sub-job ticket corresponding to oneof the original digital documents and being generated in accordance withthe print settings for the corresponding original digital documentreceived in step (a), wherein each original digital document and thecorresponding sub-job ticket form a sub-job having a sub-job ID, whereineach sub-job ticket further includes: a package tag indicating that thesub-job is a part of the job set, and a next sub-job ID parameterspecifying a sub-job ID of a next sub-job of the job set, wherein thenext sub-job ID parameter in a sub-job ticket of a last sub-job of thejob set specifies a sub-job ID of a first sub-job of the job set, andwherein a sub-job ticket for the first sub-job further includes aparameter indicating that the sub-job is the first sub-job of the jobset; (d) in response to an input received from the user to submit thejob set to a printer, transmitting all sub-jobs in the job set to theprinter.

In another aspect, the present invention provides a method implementedon a printer for executing a plurality of sub-jobs, which includes: (a)receiving a plurality of sub-jobs of a job set and storing them in amemory, each sub-job having a sub-job ID and including a digitaldocument and a corresponding sub-job ticket, each sub-job ticketincluding a plurality of parameters specifying print settings forprinting the corresponding digital document, wherein each sub-job ticketfurther includes: a package tag indicating that the sub-job is a part ofthe job set, and a next sub-job ID parameter specifying a sub-job ID ofa next sub-job of the job set, wherein the next sub-job ID parameter ina sub-job ticket of a last sub-job of the job set specifies a sub-job IDof a first sub-job of the job set, and wherein a sub-job ticket for thefirst sub-job further includes a first indicator indicating that thesub-job is the first sub-job of the job set; (b) retrieving one of thesub-jobs from the memory and setting it as a current sub-job having acurrent sub-job ticket; (c) obtaining the sub-job ID of the next sub-jobof the job set from the next sub-job ID parameter in the current sub-jobticket; (d) printing the digital document of the current sub-jobaccording to the print settings in the current sub-job ticket; (e)retrieving a sub-job from the memory using the sub-job ID of the nextsub-job obtained in step (c), and setting the retrieved sub-job as thecurrent sub-job; and repeating steps (c), (d) and (e).

In another aspect, the present invention provides a computer programproduct comprising a computer usable non-transitory medium (e.g. memoryor storage device) having a computer readable program code embeddedtherein for controlling a data processing apparatus, the computerreadable program code configured to cause the data processing apparatusto execute the above method.

It is to be understood that both the foregoing general description andthe following detailed description are exemplary and explanatory and areintended to provide further explanation of the invention as claimed.

BRIEF DESCRIPTION OF THE DRAWINGS

FIGS. 1 and 2 schematically illustrate a method for producing packagesof printed materials according to an embodiment of the presentinvention. FIG. 1 illustrates a process performed by a print server, andFIG. 2 illustrates a process performed by a printer.

FIG. 3 schematically illustrates an ordered set of sub-jobs linked toeach other forming a job set.

FIG. 4 schematically illustrates a printing system in which embodimentsof the present invention may be implemented.

DETAILED DESCRIPTION OF PREFERRED EMBODIMENTS

Embodiments of the present invention provides a method for producingpackages of printed materials arranged in order based on multipleoriginal digital documents. A print server generates multiple sub-jobswhich contain linking information that links them to each other in aspecified order to form a job set. A user interface is provided to allowthe user to specify the order of the original documents to be printed.The user can submit the job set to a printer in one submission insteadof submitting multiple print jobs. A printer executes the linkedsub-jobs sequentially, based on the linking information contained in thesub-jobs, to produce the multiple printed documents in the specifiedorder.

FIG. 4 schematically illustrates a printing system that may be used toimplement embodiments of the present invention. The system includes oneor more printers 101 (which may have certain build-in finishingfunctions such as stapling, hole punching, etc.), optional finishingdevices 102, and a print server 103 connected to each other by anetwork. The print server 103 maintains a database 104 that storesvarious data including digital documents, print job tickets, etc. One ormore client computers 105 communicates with the print server 103 via anetwork such as the internet to allow the user to place print orders.Each printer has a print engine and a printer controller that includesmemory and processor(s) (not shown in the drawings). The methoddescribed here may be implemented by software programs stored in amemory and executed by processors of the server 103 (not shown in thedrawings), and software programs stored in a memory and executed byprocessors of the printer controller of printer 101.

FIGS. 1 and 2 schematically illustrates a method of producing a packageof printed materials according to an embodiment of the presentinvention. FIG. 1 illustrates the process performed by the print server,and FIG. 2 illustrates the process performed by a printer. In thisembodiment, a job set containing multiple linked sub-jobs is created bythe server and executed by the printer. The method can automaticallymaintain the order of the various sub-jobs to be printed. The multiplesub-jobs are submitted to the printer as one set, so that the user doesnot have to submit the sub-job individually to the printer. Thedocuments are printed in the specified order by the printer and can beeasily picked up by the user.

Referring to FIG. 1, using a graphical user interface (GUI) provided bythe server, the user designates a job set (also referred to as apackage) (step S11), and designates sequential sub-jobs that will beparts of the job set (step S12). A sub-job may be designated a number ofways. One way is to specify an existing print job, which includes boththe document to be printed (e.g. a PDF document) and an associated jobticket, as a sub-job. The existing job ticket specifies the printsettings for this sub-job. The GUI may provide the ability for the userto manually modify the existing job ticket to change some of the printsettings as desired. Another way is to specify a document, and manuallyspecify the print settings for this document, to form a sub-job, in amanner similar to when the user creates a normal print job. The GUI alsoprovide the ability for the user to re-order the sub-jobs of the job setas desired.

The user further specifies certain additional parameters for the job set(step S13), including at least the following parameters: copy count forthe job set (i.e. the number of copies of the set to be produced);whether a slip sheet(s) is to be inserted at the beginning of each setof printed materials, such as a banner page; and whether a slip sheet(s)is to be inserted at the end of each set of printed materials.

The print settings for the job set and its sub-jobs are stored in theprint database 104 on the server 103. For example, the server creates adatabase entry for each job set in a package table, and creates databaseentries for the sub-job tickets in a jobs table (step S14). The jobstable may be the same jobs table that contains other job tickets ofnormal print jobs that are not a part of a job set.

In one example, each database entry in the package table contains thefollowing parameters: package ID, package name, package print status,package priority, number of sub-jobs in the package, etc. In oneexample, each database entry for a sub-job of a job set contains thefollowing parameters: job ticket ID; job ticket name; job status; numberof copies for the job; print setting parameters such as paper settings,layout settings, finishing settings, etc., and package ID of the job setit belongs to (i.e. the foreign key). Note that either the job ticketname or job ticket ID can be used to identify a job or sub-job;typically, the ID is generated by the server and the name is assigned bythe user. In the description below, the term “job ID” or “sub-job ID”generally refers to a unique identifier for a job or sub-job, which maybe either the job ticket name or job ticket ID.

The server generates sub-job tickets for the sub-jobs of the job set(step S15). (Note that if an existing print job was used to designate asub-job, the existing job ticket should not be altered, and a sub-jobticket should be generated based on the existing job ticket.) Inaddition to the job setting parameters normally present in a job ticket,the sub-job tickets contain additional parameters as follows. A packagetag, which indicates that the sub-job is a part of a job set (package),is added to all sub-job tickets. A next sub-job ID parameter is alsoadded to all sub-job tickets, which specifies the sub-job ID of the nextsub-job of the job set, except that in the last sub-job ticket, the nextsub-job ID parameter specifies the sub-job ID of the first sub-job. Inthe first sub-job ticket, the copy count of the job set (package copycount) and an indication of whether any cover slip sheet is to beinserted at the beginning of the first sub-job are added. The firstsub-job ticket may also include a parameter indicating the number ofsub-jobs in the job set. In addition, the first sub-job ticket mayincludes a tag indicating that the sub-job is the first sub-job of thejob set, and the other sub-job tickets may includes a tag indicatingthat the sub-job is not the first sub-job of the job set. In the lastsub-job ticket, an indication of whether any slip sheet is to beinserted at the end of the last sub-job is added.

FIG. 3 schematically illustrates an ordered set of sub-jobs linked toeach other forming a job set. Each sub-job includes a digital document(PDF in this example) and the associated sub-job ticket (JDF in thisexample). The sub-job tickets for the first, second, . . . and lastsub-jobs are shown as having different additional parameters asdescribed above. In the sub-job tickets, the next sub-job ID parameterserves as linking information that links the multiple sub-jobs in adesired sequence forming a job set. The arrows in FIG. 3 schematicallyshow the linking of the sub-jobs.

An example of relevant parameters of the first sub-job ticket is shownbelow:

<kmbs:packaging kmbs:thisjob=“ac_package_subjob_1”

kmbs:copy=“1” kmbs:nextjobid=“ac_package_subjob_2”kmbs:subjobtype=“head”

kmsb:numberofsubjobsinpackage=“3”

kmbs:front_slipsheet_count=“1” kmbs:front_slipsheet_tray=“1”>

An example of relevant parameters of the second through next-to-lastsub-job ticket is shown below:

<kmbs:packaging kmbs:thisjob=“ac_package_subjob_2”kmbs_subjobtype=“secondary”

kmbs:nextjobid=“ac_package_subjob_3”>

An example of relevant parameters of the last sub-job ticket is shownbelow:

<kmbs:packaging kmbs:thisjob=“ac_package_subjob_3”

kmbs:nextjobid=“ac_package_subjob_1” kmbs_subjobtype=“secondary”

kmbs:back_slipsheet_count=“1” kmbs:back_slipsheet_tray=“1”>

In the above examples, the parameter “kmbs:subjobtype=“head”” is a tagindicating that this sub-job is the first sub-job (“head”) of the jobset, while “kmbs_subjobtype=“secondary”” indicates that this sub-job isnot the first sub-job of the job set. The parameter“kmsb:numberofsubjobsinpackage=“3”” in the first sub-job ticketindicates the number of sub-jobs in the job set.

When the user issues a command to submit the job set to a printer, theserver transmits all of the sub-jobs belonging to the job set to theprinter (and any finishing devices if necessary) (step S16). Thesequence in which the sub-jobs are transmitted to the printer is notimportant; the order integrity of the sub-jobs within the job set isrealized at the time of printing as described below. As a result, theuser does not need to manually submit each sub-job individually to theprinter.

FIG. 2 illustrates a process performed by the printer controller whenexecuting a sub-job (or a normal print job). The sub-jobs or print jobshave been received from the print server and stored in the memory of theprinter controller. After retrieving a sub-job (or a normal print job)from the memory (step S200), the printer controller first examines thesub-job ticket and checks for a package tag to determine whether the jobis a normal print job or a sub-job of a job set (step S201). If the jobis a normal print job (“No” in step S201), it is printed normally (stepS207, described later).

If a package tag is present (“Yes” in step S201), indicating that thejob is a sub-job of a job set, the printer controller looks for thepackage copy count parameter in the sub-job ticket to determine whetherthe sub-job is the first sub-job of the job set (step S202). In otherwords, the package copy count parameter is used as an indication thatthe current sub-job is the first sub-job of the job set, because onlythe first sub-job ticket contains this parameter. Alternatively, insteadof using the package copy count parameter, an additional indicator maybe added to the first sub-job ticket (in step S15) to indicate that itis the first sub-job, in which case the printer controller will look forthis indicator in step S202. If the sub-job is not the first sub-job(“head job”) (“No” in step S202), the sub-job is ignored and thecontroller will wait. If it is the first sub-job (“Yes” in step S202),the printer controller turns on an internal package flag, saves thepackage copy count number, and saves the sub-job ID of this sub-job (thefirst sub-job ID) (step S203).

The printer controller then checks the sub-job ticket to determinewhether a slip sheet is required at the beginning of the package (stepS204), and sends a slip sheet to the output tray if it is required (stepS205).

The printer controller obtains the next sub-job ID from the currentsub-job ticket (step S206). It then executes the current sub-jobnormally to print the digital document of the sub-job (step S207). StepS207 may include, for example, interpreting the print setting parametersof the sub-job ticket, processing the digital document, rendering theraster image, etc.

After the sub-job is executed, if the package flag is not set (e.g. theflow has gone from step S201 directly to step S207) (“No” in step S208),the process ends. Otherwise (“Yes” in step S208), the printer controllerdetermines whether the next sub-job ID previously obtained in step S206is the same as the first sub-job ID previously saved in step S203 (stepS209). If they are not the same (“No” in step S209), the printercontroller retrieves the next sub-job from its memory using the nextsub-job ID and sets it as the current sub-job (step S210), and returnsto step S206.

If in step S209 the next sub-job ID is the same as the first sub-job ID(“Yes” in step S209), it means that the current sub-job is the lastsub-job; the printer controller checks the sub-job ticket to determinewhether a slip sheet required at the beginning of the package (stepS211), and sends a slip sheet to the output tray if it is required (stepS212).

The printer controller then subtracts one from the package copy count(step S213). If the package copy count is now zero (“Yes” in step S214),the process ends; otherwise the print controller retrieves the nextsub-job (which will be the first sub-job) from its memory and sets it asthe current sub-job (step S210), and returns to step S206 to produce thenext set of printed materials.

In the above described embodiment, the job ticket may be in any suitablejob ticket format, such as JDF (Job Definition Format), Print ProductionFormat (PPF), Portable Job Ticket Format (PJTF), etc. The digitaldocument may be in any suitable format, such as PDF.

Because the multiple sub-jobs may have diverse finishing requirements,and all sub-jobs are required to be outputted to the same output tray inorder to produce the multiple documents in the desired order, theprinter will be required to have the ability to output printed documentshaving different finishing (in particular, different binding) to thesame output tray. Alternatively, there may be a dedicated packagedoutput tray to handle the package job output such that other jobs can beinter-mixed and sent to the non-package output trays. This way, if thepackaged job has normal priority and higher priority non-package job hasto be printed, the new job can be introduced without impacting thepackage job creation process. A third alternative is that there may bean external finisher system which will collect the outputs from morethan one output tray and combine the outputs into one package. As longas this external finisher is integrated with print controller, a highpriority job can be accommodated in the same manner as in the secondalternative above.

As seen from the above descriptions, embodiments of the presentinvention provide the ability to generate a job set that links multiplesub-jobs having the various print settings together which can besubmitted to and printed on one printer (and finishing devices ifnecessary) so that they are printed in the specified sequence for eachpackage. Using the slip sheet(s) at the beginning and end of the packagejob, the user can easily separate the multiple sets of documents intoseparate packages.

An advantage of the printing method is that each job set (package) willbe printed in the correct order, as a single job submission as far asthe user is concerned, and importantly, while maintaining the differentprinting/finishing requirements of each sub-job. Multiple copies of eachset can be easily be printed or reprinted, while ensuring that thecorrect order is preserved and the printed documents easily removed as aset from the printer. Alternatively, this finisher may package each jobset into, for example, a plastic bag such that no manual intervention isrequired to create the expected output.

It will be apparent to those skilled in the art that variousmodification and variations can be made in the printing method of thepresent invention without departing from the spirit or scope of theinvention. Thus, it is intended that the present invention covermodifications and variations that come within the scope of the appendedclaims and their equivalents.

1-6. (canceled)
 7. A method implemented on a printer for executing aplurality of sub-jobs, comprising: (a) receiving a plurality of sub-jobsof a job set and storing them in a memory, each sub-job having a sub-jobID and including a digital document and a corresponding sub-job ticket,each sub-job ticket including a plurality of parameters specifying printsettings for printing the corresponding digital document, wherein eachsub-job ticket further includes: a package tag indicating that thesub-job is a part of the job set, and a next sub-job ID parameterspecifying a sub-job ID of a next sub-job of the job set, wherein thenext sub-job ID parameter in a sub-job ticket of a last sub-job of thejob set specifies a sub-job ID of a first sub-job of the job set, andwherein a sub-job ticket for the first sub-job further includes a firstindicator indicating that the sub-job is the first sub-job of the jobset; (b) retrieving one of the sub-jobs from the memory and setting itas a current sub-job having a current sub-job ticket; (c) obtaining thesub-job ID of the next sub-job of the job set from the next sub-job IDparameter in the current sub-job ticket; (d) printing the digitaldocument of the current sub-job according to the print settings in thecurrent sub-job ticket; (e) retrieving a sub-job from the memory usingthe sub-job ID of the next sub-job obtained in step (c), and setting theretrieved sub-job as the current sub-job; and repeating steps (c), (d)and (e).
 8. The method of claim 7, further comprising, after step (b):(f) determining whether the first indicator is present in the currentsub-job ticket, and when the first indicator is present, saving thesub-job ID of the current sub-job as a first sub-job ID, extracting apackage copy count from the current sub-job ticket and saving thepackage copy count.
 9. The method of claim 8, wherein the sub-job ticketfor the first sub-job further includes a slip sheet parameter indicatingthat a slip sheet is to be inserted at a beginning of the job set, andwherein step (f) further comprises: when the first indicator is present,based on the slip sheet parameter, sending a slip sheet to an outputtray.
 10. The method of claim 8, further comprising, after step (d) andbefore step (e): (g) determining whether the sub-job ID of the nextsub-job is equal to the saved first sub-job ID, wherein step (e) isperformed when the sub-job ID of the next sub-job is not equal to thefirst sub-job ID; and (h) when the sub-job ID of the next sub-job isequal to the first sub-job ID, subtracting one from the saved packagecopy count, determining whether the package copy count is zero, andperforming step (e) when the package copy count is not zero.
 11. Themethod of claim 10, wherein step (h) further comprises: when the sub-jobID of the next sub-job is equal to the first sub-job ID, obtaining aslip sheet parameter from the sub-job ticket indicating that a slipsheet is to be inserted at an end of the job set, and sending a slipsheet to an output tray.
 12. The method of claim 8, wherein step (f)further comprises: when the first indicator is present, turning on apackage flag; and wherein the method further comprises: after step (d)and before step (e), determining whether the package flag is turned on,and wherein step (e) is performed when the package flag is turned on.13. A computer program product comprising a computer usablenon-transitory medium having a computer readable program code embeddedtherein for controlling a printer, the computer readable program codeconfigured to cause the printer to execute a plurality of sub-jobs, theprocess comprising: (a) receiving a plurality of sub-jobs of a job setand storing them in a memory, each sub-job having a sub-job ID andincluding a digital document and a corresponding sub-job ticket, eachsub-job ticket including a plurality of parameters specifying printsettings for printing the corresponding digital document, wherein eachsub-job ticket further includes: a package tag indicating that thesub-job is a part of the job set, and a next sub-job ID parameterspecifying a sub-job ID of a next sub-job of the job set, wherein thenext sub-job ID parameter in a sub-job ticket of a last sub-job of thejob set specifies a sub-job ID of a first sub-job of the job set, andwherein a sub-job ticket for the first sub-job further includes a firstindicator indicating that the sub-job is the first sub-job of the jobset; (b) retrieving one of the sub-jobs from the memory and setting itas a current sub-job having a current sub-job ticket; (c) obtaining thesub-job ID of the next sub-job of the job set from the next sub-job IDparameter in the current sub-job ticket; (d) printing the digitaldocument of the current sub-job according to the print settings in thecurrent sub-job ticket; (e) retrieving a sub-job from the memory usingthe sub-job ID of the next sub-job obtained in step (c), and setting theretrieved sub-job as the current sub-job; and repeating steps (c), (d)and (e).
 14. The computer program product of claim 13, wherein theprocess further comprises, after step (b): (f) determining whether thefirst indicator is present in the current sub-job ticket, and when thefirst indicator is present, saving the sub-job ID of the current sub-jobas a first sub-job ID, extracting a package copy count from the currentsub-job ticket and saving the package copy count.
 15. The computerprogram product of claim 14, wherein the sub-job ticket for the firstsub-job further includes a slip sheet parameter indicating that a slipsheet is to be inserted at a beginning of the job set, and wherein step(f) further comprises: when the first indicator is present, based on theslip sheet parameter, sending a slip sheet to an output tray.
 16. Thecomputer program product of claim 14, wherein the process furthercomprises, after step (d) and before step (e): (g) determining whetherthe sub-job ID of the next sub-job is equal to the saved first sub-jobID, wherein step (e) is performed when the sub-job ID of the nextsub-job is not equal to the first sub-job ID; and (h) when the sub-jobID of the next sub-job is equal to the first sub-job ID, subtracting onefrom the saved package copy count, determining whether the package copycount is zero, and performing step (e) when the package copy count isnot zero.
 17. The computer program product of claim 16, wherein step (h)further comprises: when the sub-job ID of the next sub-job is equal tothe first sub-job ID, obtaining a slip sheet parameter from the sub-jobticket indicating that a slip sheet is to be inserted at an end of thejob set, and sending a slip sheet to an output tray.
 18. The computerprogram product of claim 14, wherein step (f) further comprises: whenthe first indicator is present, turning on a package flag; and whereinthe process further comprises: after step (d) and before step (e),determining whether the package flag is turned on, and wherein step (e)is performed when the package flag is turned on.